Recent years have witnessed the proliferation of content delivery networks (CDNs) on the Internet for a wide range of applications, including web object hosting, file/document dissemination, multimedia streaming, etc. Among these applications, video streaming is recently becoming increasingly popular on CDNs, and incurs large volumes of data to be exchanged between the edge proxy and origin media servers. Fully utilizing the network resources to stream video in a timely and smooth manner is now attracting extensive studies and efforts.
Currently, the streaming media industry has experienced a steady shift away from classic streaming protocols, such as real time streaming protocol (RTSP), back to plain hypertext transfer protocol (HTTP) download, such as Microsoft IIS Smooth Streaming and Apple HTTP Live Streaming. The video content is typically stored in full length as a single file on the media server (one file per encoded bit rate for adaptive streaming) and is transmitted to the client as a series of small chunk files over HTTP. As player clients request each video time slice from the media server sequentially and separately, the transmission control protocol (TCP) connections between the proxy and origin servers, which are dedicated to respective requests for particular data from different clients, are frequently and repeatedly setup and torn down. For example, a 900 MB video leads to at least 3600 times of TCP connection establishment with a 250 KB chunk size, to say nothing of HD video with a typical size of several gigabytes. As TCP connection establishment is a tedious task, this generally makes the access slow and eventually impacts the video fluency.